Browser-enabled communication system and client and server for one such communication system

ABSTRACT

A wireless communication system allows mobile users to access a resource from a content server. The wireless communication system includes a browser that allows mobile users to access resources through a wireless application protocol (WAP) compliant server. The (WAP) compliant server connects the browser to a content server. This connection allows resources to be passed between the browser and the (WAP) compliant server. The browser is further configured to transmit a request that includes an address for a resource, a protocol to be used, and one or more textual parameters encoded into a binary data packet. The wireless communication method includes generating a request for a resource; translating a textual portion of that request into binary data at the browser; transmitting the request to a wireless gateway; and converting the request into a format that is compatible with a protocol used by a receiving network.

The invention relates to a communication system with browser capability, with a server and a client that communicate with one another using a predetermined protocol, according to the features of claim 1.

Such communication systems, for example, with WAP browser capability, are already known, for example, in connection with mobile telephones (cellular phones) with WAP capability, but also with car radio devices, as sold under the designation Becker-Radio Online Pro by the applicant.

The cited car radios of the type Online Pro have a built-in GSM module, with which it is possible to telephone and to call up WAP pages. The WAP pages called up from a server are then shown on a three-line display. In addition, this car radio has a built-in navigation system. The navigation system can retrieve current traffic jam information from a server, such as WEB.de, when requested, and include this information directly into the calculated route, so that, where necessary, the driver can drive around an existing traffic jam.

With the known method, the following is problematic: the Wireless Application Protocol (WAP) offers only limited possibilities for communication between the client (terminal, meaning, for example, the cellular phone or car radio, etc.) and the server. Via the Hypertext Transfer Protocol (HTTP), the client can place a request on the server with the HTTP-GET command, as a result of which parameters can be transmitted to the server.

In the present method, a request is made from the client (OnlinePro) to the server (WAP server) via an URL call, with attached parameters. The attached parameters consist of a keyword, separator and value, for example, of the following kind.

EXAMPLE 1

. . . /testappl.cgi?navdest=[1]DEUTSCHLAND,,[2]HILDESHEIM,,[3]DAIMLERRING

EXAMPLE 2

. . . /testappl2.php?param1=somevalue&param2=anothervalue . . .

The way that the requests work is described according to the Common Gateway Interface (CGI) method.

The server must send its answer to the client in an understandable format. The answer data are encoded according to the Multipurpose Internet Mail Extension (MIME-TYPE) method, about which the client gave notification while setting up the connection. From this request, the WAP server generates a packet with a particular MIME type (for example, ‘x-becker/vnd.wap.bim’). This packet contains the data in plain text. The packet size is limited.

The known method, however, does not in itself offer any possibility of securely transmitting more than 256 bytes from the client to the server—the size of the reply from the server to the client is also limited (the exact size differs, depending on the implementation).

This is where the invention under consideration begins.

The object of the invention is to provide a communication system with browser capability that does not have such limitations in data communication.

This object is solved by means of a communication system with the features of claim 1.

Further developments are the subject of the sub-claims.

According to the invention, a browser is taken to mean a program for surfing on the Internet. It serves to retrieve and display information from the Internet. A browser renders the received HTML pages, which can contain texts, pictures and programs, graphically. Furthermore, the user has the possibility of adjusting the WWW browser in such a way that, for example, audio and video files can be displayed with a specific program. Some examples of known browsers are: Netscape Navigator, Microsoft Internet Explorer, NSCA Mosaic, LYNX). In addition to the display of WWW (World Wide Web) pages, WWW browsers offer services, such as:

-   -   Writing and reading E-mails     -   File transmission (from the server to the local computer)     -   Reading and writing news

In the framework of the invention under consideration, URL is the known abbreviation for “Uniform Resource Locator”. With the help of the URL, all information on the Internet is unambiguously addressed worldwide. For example, the URL http://www.becker.de consists of: the transmission protocol used, http:// (is responsible for transporting HTML documents), the sublevel domain www (World Wide Web), the domain Becker, the top level domain de (for Germany—Deutschland) and the path of the corresponding page (or file) links. The hierarchical order of the individual address components is necessary in order to reach the correct address. Practically, URLs in HTML pages can serve as links, over which the user can surf from website to website with a mouse click.

A communication system with browser capability is understood to mean a communication system that, with the help of a browser, transmits communication data between users.

An essential element of the communication system is the data transmission protocol with which the communication between the client and server is set up. In the method according to the invention, the request from the client (OnlinePro) to the server is made in the same way as for the previous method, by calling up a resource locator, such as an URL, with parameters. The new method, however, transmits only one parameter, which contains a binary packet encoded for the transmission.

Where necessary, the protocol provides for a possible fragmentation/defragmentation of the packets. The protocol allows different services to be handled with one data format, so that, for example, the response packet can always have the same MIME type.

With this solution, the following advantages are achieved in comparison to the known systems:

-   -   Larger data packets are automatically transmitted in several         steps     -   The server can request data from the client, which is normally         not at all possible     -   New services that are implemented with this method can be put         into operation considerably faster, because only one MIME type         is necessary (no reconfiguration of the http server)     -   Evaluation of internal task identification codes make the         protocol future-proof

According to the invention, the server reacts to requests from the client again in the same way as for the known method. However, here again, the packet contents are no longer contained in plain text, as described above, but will be contained in binary, as in the documentation included with the invention application.

This, in turn, has the following advantages compared to the old method:

-   -   The amount of data transmitted is smaller (summarizing         individual values into bit sequences)     -   The contents are no longer apparent to everyone     -   Easier and faster readability for the terminal software     -   Realisation of a handshaking process (transmission of more than         one sub-packet)     -   Realisation of server requests by transmitting an reply resource         locator (such as an URL) and handshake realisation

In the following, a concrete embodiment is described, using a car radio (referred to as the client in the following) with integrated navigation system and GPS module. In this embodiment, it is assumed that the resource locators are the known URL calls mentioned above and that the known WAP (“Wireless Application Protocol”) is used as the transmission format. The invention is not restricted to this URL and WAP, however.

Using the latter WAP protocols, communication with a WAP server is possible. It is assumed that the necessary WAP browser, including data interface, has been implemented in the car radio. The car radio is formed in such a way that very different parameters can be transmitted to the server, which is then capable of generating specific contents for each user.

As in the classic WAP architecture, the client is on one side and the server on the other. As a rule, the client is the initiator: it sets up the connection and requests the data. The server supplies only requested data and does not have the possibility of initiating requests.

The server can only use an SMS push to arrange for the terminal to retrieve specific data with the help of the WAP browser. The data connection is produced over the built-in GSM modem and a selected access profile. After the connection has been set up, a required Internet portal is called up and all possible services are displayed as a WML (Wireless Markup Language) page. The portal call passes a very wide range of parameters, such as: device number, password, vehicle identification number and geo coordinates as URL parameters.

The server now assembles a WAP page with information that is dynamically generated for each user. Subsequently, it is possible to navigate through these contents the same way as through the WAP entries in the conventional sense.

For example, if the user selects a hotel search, the area that could be considered is calculated on the server side, depending on the position passed on in the login, and the possible hotels are selected from the database. These results are sent back to the terminal, in the form of a WML page.

The user selects the desired hotel and then receives detailed data on the hotel (again as a WML page), including a link. This link conceals a data packet, which contains a destination description for the navigation system. The connection is terminated after the navigation data has been transmitted.

1. Format of the Data Packets

The format of the data packets that are exchanged between the client and server is presented in the following.

In addition to the MIME type, there is also a description of the formats of the data packets that are sent from the server to the client (Service packets) and those sent from the client to the server (Request packets).

1.1 Content/MIME Type

The Content type or MIME type selected for this is called, for example, x-becker/vnd.wap.lbs.

The MIME type must begin with “x-”, in order to fulfil IANA requirements (see www.w3c.org-RFC 1700). This format for the data to be transmitted from the server to the client is future-proof, because different services can be handled by just a separate Service ID with this MIME type.

Only data packets that have this MIME type are decoded by the client, according to an included Service ID.

1.2 Service Packet (Server)

The Service packets are transmitted from the server portal to the client when requested. In addition to the Service ID code, device number and a CRC32 check, they contain the useful data. The length of the useful data depends on the service selected. Consequently, this format is relatively flexible.

1.2.1 Format of the Data Packet

The description of these packets follows the syntax of the MPEG2 specifications and a relatively easy to understand pseudo programming language. The protocol setup has, for example, been selected as follows: service_packet ( ) { service_id 8 bits // Service identification code device_id_length 8 bits // Length of the serial number for (n1=0; n1< device_id_length; n1++) { device_id[n1] 8 bits // Serial number } reserved 32 bits // for future use last_section_number 4 bits // Number of packets section_number 4 bits // Number of this packet for (n1=0; n1< session_id_length; n1++) { session_id[n1] 8 bits // Session ID } switch (service_id) { case SERVICE_NAVDESTINATIONS: service_packet_navdestinations ( ) break case SERVICE_SERVERREQUEST: service_packet_serverrequest ( ) break case SERVICE_TTS: service_packet_tts ( ) break case SERVICE_...: service_packet_... ( ) break } CRC_32 32 bits // automatic error correction }

In this case, the service_id is the identification code for the respective service. Using this 8 bit ID, the rest of the data contained in the packet is decoded. Possible Service IDs can be: Parameter Value Description SERVICE_NOTDEFINED 0x00 Safety anchor . . . SERVICE_NAVDESTINATIONS 0x01 Poll the destinations defined over WWW SERVICE_TTS 0x02 Text-to-Speech SERVICE_SERVERREQUEST 0xF0 Position request from server

The device_id contains the device number. It is also called the user name in some parts of the source code.

The two 4-bit values last_section_number and section_number describe how many packets of this type are being transmitted, one after another, and what packet number the current packet has. This is absolutely useful for future versions in which the data volume exceeds the normal amount. In one embodiment, these two values can always be set to 1.

To transmit more than one section, the session_id is needed; it is included in the transmission of each data exchange. It has a variable length and is generated/stipulated by the server the first time the server is called. Only by using this ID does the server know who is making a request as the client. Handshaking processes, such as are needed for TDS, for example, can be realised using the combination of section_number, last_section_number and session_id.

With the exception of the last value, CRC 32, further decoding takes place depending on the service_id. Encoding of the so-called useful data is treated in the appropriate sections below.

1.2.2 Service.ID SERVICE NAVDESTINATIONS

The service for the search for destinations found in the vicinity that is connected with the SERVICE_NAVDESTINATIONS ID was the first of all the services described here. With this service, it is possible to request the navigation data of special destinations (restaurants, hotels, train stations, museums, etc.). The attainable destination information is not contained in the “normal” CD navigation data.

This additional service allows a type of yellow pages for the car radio. The navigation data that is requested in this way can be billed to the requester, on the one hand; on the other hand, it can also be billed to the owner of the destination (for example, a restaurant owner).

The format of the data packet looks as follows, for example: service_packet_navdestinations ( ) { start_mode 2 bits // For navigation save_mode 1 bit // Save yes or no reserved 5 bits // For future use number_of_dest 8 bits // Number of destinations in packet for (i=0; i<number_of_dest; i++) { dest_length 8 bits // Number of characters in string for (n1=0; n1<dest_length; n1++) { destination [n1] // Chars of the destination } url_length 8 bits // Number of characters in string for (n1=0; n1<url_length; n1++) { url [n1] // URL with destination information } } }

Additional data, such as one URL per navigation destination, can be attached to a data packet, depending on the definition.

If the Service ID SERVICE_NAVDESTINATIONS was found when the header data was decoded, then the useful data is decoded according to the syntax recorded here.

The two values start_mode (2-bit value) and save_mode (1-bit value) are needed for the navigation itself. The start mode is used to establish whether the navigation starts up right away or whether the transmitted destinations should first be placed into memory as a possible destination for later. The possible values here are described in the following table. TABLE Possible start modes for the navigation Value Term Description 0x0 NAVISTART_NOT Do not start navigation 0x1 NAVISTART_ROUTE Navigation with route options 0x2 NAVISTART_IMMIDIA Start navigation immediately 0x3 Reserved Reserved for future use

Subsequently, the value number_of_dest, i.e. the number of destinations in this packet, comes in this block. Then comes a loop which is run through exactly number_of_dest times. This is where the individual destinations are read out.

1.2.2.1 Destination String

The Destination string indicates the destination that is being transmitted. The string is made up of tags, the so-called selection criteria, followed by the respective description. The selection criteria are in square brackets and contain a number (decimal).

The string itself looks as follows, for example:

-   [1]DEUTSCHLAND,,[2]HAMBURG,,[3]WENDENSTRASSE,,[256]Innovative     Systems -   [1]DEUTSCHLAND,,[124]0 0 -   [1]DEUTSCHLAND,,[124]0-73450,,[256] McDonalds Ecuador

Likewise, there is the possibility of specifying a destination in WGS84 format. WGS-84 coordinates have an inaccuracy of 50 meters (10 meters Nav−Tech data+20 meters inaccuracy of the GPS data in each direction) for destination guidance.

1.2.3 Service-ID SERVICE SERVERREQUEST

This service makes it possible for the server to query the current position of the device making the request. This information is essential for Location Based Services.

The current geo data can already be handed over during the login to the car radio. The current geo data is, however, preferably supplied via the client's request packets to the server.

If the server wants to have position data at some other time, then it can be requested via this server request. The functionality is important, for example, for fleet management, placing an emergency call, return call actions, etc. service_packet_serverrequest ( ) { length_of_url 8 bits // Length of URL for (n1=0; n1<length_of_url; n1++) { response_url[n1] // URL for the answer } }

The client needs the URL to which it should reply for the answer to the server's request. This is specified in this location. First, the length of the URL length_of_url is specified as an 8-bit value, and then comes the actual character string.

1.3 Request Packet (Client)

In the same way as for the server reply, a more binary oriented format is switched to for the request of data by the client. The format of the data packet is described in more detail in the following.

In contrast to the service packet, here the binary packet cannot simply be transmitted (push transmission), but must instead be attached to the request to the URL, because of browser restrictions. This requires that the data be converted into URL-specific notation. Here it must be observed that the length of the URL should not exceed a total of 256 characters, because otherwise older gateways on the transmission route may cut off the data.

By transmitting the Session ID in the packets being passed back and forth, it is not absolutely necessary that an ongoing session be ended by this URL call. For example, at the applicant's online portal, one logs in, for example, at the beginning with the user name and password. From this time on, one is in a session in which the data is transmitted in an encoded form. As soon as one explicitly attempts to call a link with a self-generated URL working out of the client, one starts a new session, as long as the server does not recognize that it is the same session based on the Session ID.

1.3.1 Format of the Data Packet

The format of the data packet follows the previously existing one. The Session ID can either be attached to the URL as a separate parameter or integrated into the packet here. In the first case, the length of the Session ID is set to 0. One example for this could be: request_packet { task_name 24 bits // Task identification (old) service_id 8 bits // Identification of the service device_id_length 8 bits // Length of the serial number for (n1=0; n1< device_id_length; n1++) { device_id[n1] 8 bits // Serial number } fin_length 8 bits // Length of the vehicle identification number for (n1=0; n1< fin_length; n1++) { fin[n1] 8 bits // Vehicle identification number } software_version_length 8 bits // Length of the version identification for (n1=0; n1< software_version_length; n1++) { software_version [n1] 8 bits // Version identification } language_id 8 bits // Language selection on the client reserved 32 bits // for future use password_length 8 bits // Length of the password for (n2=0; n2<password_length; n2++) { password[n2] 8 bits // Chars in the password } for (n3=0; n3<session_id_length; n3++) { session_id[n3] 8 bits // Chars in the Session ID } longitude 32 bits // Longitude latitude 32 bits // Latitude if (service_id == SERVICE_NAVDESTINATIONS) { // No additional data is } // requested here else if (service_id == SERVICE_...) // This can look different { // for other requests ... } CRC_32 32 bits // Error correction }

The tag task_name is still contained in this format, in order to make the transmission from old to new easier.

The actual request is in the service_id tag. This is where the Service ID that the receiver wants to use is specified, or consequently requested. If additional data is needed for individual requests, they are to be implemented in the lower part of the packet.

The device_id is the client's device number, the same as in the server reply. It consists of 14 characters.

The six values that follow it describe the current position of the vehicle in X and Y coordinates. 

1. A wireless communication system that allows mobile users to access a resource from a content server through a network comprising: a browser that allows mobile users to access resources; and a wireless application protocol compliant server programmed to couple the browser to a content provider server so that a resource may be passed between the browser and the wireless application protocol compliant server; where the browser is configured to transmit a request that comprises an address for the resource, a protocol to be used, and one or more textual parameters encoded into a single binary data packet.
 2. A communication system having a browser capability, comprising: a wireless application protocol compliant server; and a client coupled the server and adapted to transmit a request for a resource; where the request comprises a single encoded parameter that includes an identification code that comprises a binary data packet.
 3. The communication system according to claim 2, where the client comprises a wireless application protocol compliant client.
 4. The communication system according to claim 2, where the request comprises a protocol to be used to access the resource and the name of a second server on which the resource resides.
 5. The communication system according to the claim 2, where the request, is not more than 256 characters long.
 6. The communication system according to claim 4, where request, is transmitted to the server after a handshake process.
 7. The communication system according to claim 2, wherein the server is adapted to transmits data packets comprising an error checking code—and binary data.
 8. The communication system according to claim 6, where the data comprise a binary translation of textual data.
 9. The communication system according to claim 4, where the length the request may vary with the resource requested.
 10. The communication system according to claim 8, where the data packets sent from the server to the client have successive bits arranged as follows: Identification code of the service (Service ID); Length of the serial number; Serial number, further reserved area for future applications; Number of packets (last-section-number); and Number of the package just sent (section number); and Section number.
 11. The communication system according to claim 7 where the identification code has a specified bit width that, makes it possible to decode the contained in the data packet.
 12. The communication system according to claim 7 where the identification code is variable in length, and generated by the server.
 13. The communication system according to claim 7 where the communication system comprises a navigation system.
 14. The communication system according to claim 13 where the requested service comprises a query of the client's current location.
 15. The communication system according to claim 7 where the server is adapted to send data in a MIME format.
 16. The communication system according to claim 7, where the client comprises a wireless Internet complaint browser.
 17. The communication system according to claim 7, where the client comprises a navigation system resident to a radio.
 18. The communication system according to claim 7 where the client comprises an Internet compliant hand-held wireless device.
 19. The communication system according to claim 7 where the client comprises a Internet compliant device resident to a vehicle.
 20. A wireless communication protocol method comprising: generating a request for an publicly accessible resource; translating a textual portion of the request into a binary data through a wireless browser; transmitting the request to a wireless gateway; and converting, the request at the gateway into a format that is compatible with a protocol used by a receiving network. 